#include <iostream>
#include <vector>
using namespace std;

const int N=1<<6;
int dp[6][N][N];
bool check(int x)
{
	int cnt=0;
	while(x)
	{
		if(x&1==1)
			cnt++;
		else 
			cnt=0;
		if(cnt>=3)
			return false;
		x>>=1;
	}
	return true;
}
int main()
{
	vector<int> a;
	int n,m;
	cin>>n>>m;
	for(int i=0;i<1<<m;i++)
	{
		if(check(i))
		{
			a.push_back(i);
		}
	}
	for(int i=0;i<a.size();i++)
	{
		dp[1][a[i]][0]=1;
	}
	for(int i=2;i<=n;i++)
	{
		for(int j=0;j<a.size();j++)
		{
			for(int z=0;z<a.size();z++)
			{
				for(int k=0;k<a.size();k++)
				{
					if(a[j]&a[z]&a[k])
					{
						continue;
					}
					dp[i][a[k]][a[z]]+=dp[i-1][a[z]][a[j]];
					
				}
			}
		}
	}
	int ret=0;
	for(int i=0;i<a.size();i++)
	{
		for(int j=0;j<a.size();j++)
		{
			ret+=dp[n][a[i]][a[j]];
		}
	}
	cout<<ret<<endl;
	return 0;
}
